J2SE 5.0 より、起動するアプリケーションがサーバクラスマシン上で実行されているかどうかを起動ツールで検出できるようになりました。サーバクラスマシン上で実行されていれば、Java HotSpot Client Virtual Machine (クライアント VM) ではなく、Java HotSpot Server Virtual Machine (サーバ VM) が使用されます。これで、実行しているアプリケーションを反映するように VM が設定されていなくても、パフォーマンスを向上させられます。一般に、クライアント VM よりもサーバ VM の起動が低速ですが、徐々に速く動作するようになります。
注: J2SE 5.0 の場合、サーバクラスマシンとは、少なくとも 2つの CPU と、最少でも 2GB の物理メモリを備えているマシンを指します。
J2SE 5.0 では、Solaris または Linux を実行している i586 または Sparc 32 ビットマシン上でアプリケーションを起動するときに、-server
と -client
のどちらも指定されていない場合に、サーバクラス の検出が行われます。以下の表からも分かるように、i586 Microsoft Windows プラットフォームではデフォルトでクライアント VM を使用します。Sun がサポートしている残りのプラットフォームでは、サーバ VM だけを使用します。
プラットフォーム
|
デフォルト VM
|
|||
アーキテクチャ | OS |
クライアント VM
|
サーバクラスの場合はサーバ VM、
そうでない場合はクライアント VM |
サーバ VM
|
SPARC 32 ビット | Solaris |
|
X
|
|
i586 | Solaris |
|
X
|
|
Linux |
|
X
|
|
|
Microsoft Windows |
X
|
|
|
|
SPARC 64 ビット | Solaris |
|
|
X
|
AMD64 | Linux |
|
|
X
|
Microsoft Windows |
|
|
X
|
コマンド行オプションを使用するアプリケーションの起動については、Solaris、Linux、または Microsoft Windows 用の java
ツールのドキュメントを参照してください。